home *** CD-ROM | disk | FTP | other *** search
- ╔═══════════════════════════════════════════════════╗
-
- ║ Especificaciones para TEXTMODE.H ║
-
- ╚══════════════╦═════════════════════╦══════════════╝
-
- ║ (C) Anubis Software ║
-
- ╚═════════════════════╝
-
-
-
- Esta librería pretende facilitar el manejo de la pantalla en el modo de texto de 80x25.
-
-
-
- ╔═════════════════════════════════════════════════════════════╗
-
- ║ Definición de constantes de la librería ║
-
- ╚═════════════════════════════════════════════════════════════╝
-
-
-
- Las siguientes declaraciones establecen la memoria de video y la longitud de una página de video.
-
- #define PANTALLA 0xB800
-
- #define LONG_PAGINA 0x1000
-
-
-
- // Definición de tipos del cursor para la funcion tipo_cursor.
-
- #define CURSOR_INVISIBLE 0
-
- #define CURSOR_NORMAL 1
-
- #define CURSOR_BLOQUE 2
-
- #define OLD_CURSOR 3
-
-
-
- ╔═════════════════════════════════════════════════════════════╗
-
- ║ Definición de macros de la librería ║
-
- ╚═════════════════════════════════════════════════════════════╝
-
-
-
- Las siguientes declaraciones sirven para acceder más facilmente a la memoria de video.
-
- La macro CARACTER(x,y) es una optimización de (y*160+x*2)
-
-
-
- #define CARACTER(x,y) (WORD)(((y)<<7)+((y)<<5)+((x)<<1))
-
- #define ATRIBUTO(x,y) (WORD)(CARACTER(x,y)+1)
-
- #define CARACTERP(n,x,y) (WORD)((n)*LONG_PAGINA+CARACTER(x,y))
-
- #define ATRIBUTOP(n,x,y) (WORD)((n)*LONG_PAGINA+ATRIBUTO(x,y))
-
- #define COLOR(x,y) (BYTE)(x+(y<<4))
-
-
-
- ╔═════════════════════════════════════════════════════════════╗
-
- ║ La librería tiene ciertas variables globales: ║
-
- ╚═════════════════════════════════════════════════════════════╝
-
-
-
- extern BYTE CTexto,CFondo;
-
- extern BYTE CCursorx,CCursory;
-
-
-
- Estas variables sirven para enjuiciar los colores de texto y de fondo de la pantalla, asi como
-
- la posición de un cursor virtual.
-
-
-
- ╔═════════════════════════════════════════════════════════════╗
-
- ║ Declaración de las funciones de la librería ║
-
- ╚═════════════════════════════════════════════════════════════╝
-
-
-
- void tipo_cursor (unsigned char tipo);
-
- ─────────────────────────────────-----
-
- Esta función establece el tipo del cursor a uno de los que se mencionan en las constantes.
-
-
-
- CURSOR_INVISIBLE -> Hace desaparecer el cursor.
-
- CURSOR_NORMAL -> Caracter de subrayado.
-
- CURSOR_BLOQUE -> Bloque sólido.
-
- OLD_CURSOR -> El anterior al actual.
-
-
-
- Esta función sólo modifica el tipo de cursor, pero bajo ningún
-
- concepto modifica la posición del mismo.
-
-
-
-
-
- void Save_Screen (unsigned short );
-
- ───────────────────────────────────
-
- Esta función guarda la pantalla en una de las zonas de video que pueden hacer a las veces de
-
- pantallas de video.
-
- Esto es útil para hacer presentaciones, se pueden guardar hasta siete (0...6) pantallas, la
-
- número 0 es la pantalla que normalmente está en visualización.
-
-
-
-
-
- void Restore_Screen (unsigned short );
-
- ──────────────────────────────────────
-
- Esta función, es la reciproca de la funcion Save_Screen. Lo que hace es restaurar el contenido
-
- de una de las siete pantallas auxiliares a la pantalla que se esta visualizando. Que es siempre la 0.
-
- En realidad copia el contenido de la página especificada a la página 0.
-
-
-
-
-
- void escribecppa(char car, WORD pos, BYTE color);
-
- ─────────────────────────────────────────────────
-
- Esta funcione escribe el caracter car en la posición de video pos,
-
- (Incluyendose todas las páginas de video) pos es un desplazamiento sobre el principio de
-
- la memoria de video y se puede controlar mejor con las macros de esta librería. Y con
-
- los atributos de color especificados en la variable color.
-
- La representación de la pantalla es la siguiente.
-
-
-
- 11111111112 77
-
- 012345678901234567890 ... 89
-
- ╔════════════════════════════════════════════╗
-
- 0║░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░║
-
- 1║░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░║
-
- 2║░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░║
-
- 3║░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░║
-
- 4║░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░║
-
- 5║░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░║
-
- .║░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░║
-
- .║░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░║
-
- .║░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░║
-
- ║░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░║
-
- 23║░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░║
-
- 24║░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░║
-
- ╚════════════════════════════════════════════╝
-
-
-
- Existen muchas variantes de esta funcion:
-
-
-
- // Definición de las macros para escribir un caracter.
-
- #define escribec(car,posx,posy,ctexto,cfondo) escribecppa(car,CARACTER(posx,posy),COLOR(ctexto,cfondo))
-
- --------------------------------------------------------------------------------------------------------------
-
- Esta función escribe el caracter car en la posición (posx,posy) y con los colores de texto ctexto y de fondo
-
- cfondo.
-
-
-
- #define escribecp(pag,car,posx,posy,ctexto,cfondo) escribecppa(car,CARACTERP(posx,posy),COLOR(ctexto,cfondo))
-
- ---------------------------------------------------------------------------------------------------------------
-
- Es analoga a la anterior salvo en que también se referencia la página en la que se desea escribir.
-
-
-
- #define escribeca(car,posx,posy,atrib) escribecppa(car,CARACTER(posx,posy),atrib)
-
- -----------------------------------------------------------------------------------------------
-
- Aquí se pasa el color en un solo BYTE.
-
-
-
- #define escribecpa(pag,car,posx,posy,atrib) escribecppa(car,CARACTERP(pag,posx,posy),atrib)
-
- ----------------------------------------------------------------------------------------------------
-
- Igual que el anterior, pero con esta función se puede seleccionar la página.
-
-
-
- #define escribecs(car) escribecppa(car,CARACTER(CCursorx,CCursory),COLOR(CTexto,CFondo))
-
- ----------------------------------------------------------------------------------------------------------------------
-
- Esta función utiliza las coordenadas propias de la librería CTexto,CFondo,CCursorx,CCursory
-
-
-
- #define escribecsp(pag,car) escribecppa(car,CARACTERP(pag,CCursorx,CCursory),COLOR(CTexto,CFondo))
-
- ---------------------------------------------------------------------------------------------------------------------------
-
- Analoga a la anterior y además se puede seleccionar la página de video en la cual escribir.
-
-
-
-
-
- NOTAS:
-
- ══════
-
- Los rangos para car son los 256 caracteres a escribir.
-
- pag será un valor entre 0 y 6 que determina la página de video en la que se escribe el caracter.
-
- posx, posy son las coordenadas de pantalla. posx entre 0 y 79 y posy entre 0 y 24.
-
- Para los ctexto y cfondo consultar la libreria colores.h
-
- atrib no es otra cosa que la combinación de los colores mediante la macro COLOR de esta misma librería.
-
-
-
-
-
- void escribeppa(char *,WORD ,BYTE );
-
- ────────────────────────────────────
-
- Esta funcion es analoga a la escribecppa, salvo en que escribe toda
-
- una cadena de caracteres en lugar de un sólo caracter.
-
-
-
- Existen muchas variantes de esta funcion:
-
-
-
- // Definición de las macros para escribir una cadena de carácteres
-
- #define escribe(cadena,posx,posy,ctexto,cfondo) escribeppa(cadena,CARACTER(posx,posy),COLOR(ctexto,cfondo))
-
- #define escribep(pag,cadena,posx,posy,ctexto,cfondo) escribeppa(cadena,CARACTERP(pag,posx,posy),COLOR(ctexto,cfondo))
-
- #define escribea(cadena,posx,posy,atrib) escribeppa(cadena,CARACTER(posx,posy),atrib)
-
- #define escribepa(pag,cadena,posx,posy,atrib) escribeppa(cadena,CARACTERP(pag,posx,posy),atrib)
-
- #define escribes(cadena) escribeppa(cadena,CARACTER(CCursorx,CCursory),COLOR(CTexto,CFondo))
-
- #define escribesp(pag,cadena) escribeppa(cadena,CARACTERP(pag,CCursorx,CCursory),COLOR(CTexto,CFondo))
-
-
-
-
-
- NOTAS:
-
- ══════
-
- Las caracteristicas de las variables son análogas a las caracteristicas de la función
-
- escribecppa;
-
- Excepto en el parametro cadena que es una cadena de caracteres.
-
-
-
-
-
- void Borrar_Pantallapca(BYTE pag,char car, BYTE color);
-
- ───────────────────────────────────────────────────────
-
- Esta funcion borra la página de video seleccionada (0...6) con el caracter
-
- car y con los atributos de color especificados.
-
-
-
- Existen algunas variantes de esta funcion:
-
-
-
- //Definicion de las macros para Borrar_Pantalla
-
- #define Borrar_Pantalla() Borrar_Pantallapca(0,' ',COLOR(TBLANCO,FNEGRO))
-
- #define Borrar_Pantallap(pag) Borrar_Pantallapca(pag,' ',COLOR(TBLANCO,FNEGRO))
-
- #define Borrar_Pantallac(car,ctexto,cfondo) Borrar_Pantallapca(0,car,COLOR(ctexto,cfondo))
-
- #define Borrar_Pantallapc(pag,car,ctexto,cfondo) Borrar_Pantallapca(pag,car,COLOR(ctexto,cfondo))
-
-
-
-
-
- void Grabar_Pagina(BYTE pag, char *fichero);
-
- ────────────────────────────────────────────
-
- Esta funcion guarda la página de video especificada en un fichero.
-
-
-
-
-
- void Cargar_Pagina(BYTE pag, char *fichero);
-
- ────────────────────────────────────────────
-
- Esta funcion carga en la página especificada el fichero de pantalla.
-
- El fichero debería ser previamente guardado con la función
-
- Grabar_Pagina.
-
-
-
-
-
- void Muestra_Pagina(unsigned short pag);
-
- ────────────────────────────────────────
-
- Esta funcion hace que la pantalla que se va a visualizar no sea la
-
- cero, sino la del número que se especifica (0...6).